//------------------------------------------------------------------------------
//  Namespace: FruitVentDesign.Models
//  
//  Function： N/A
//  Name： FilterItem
//  
//  Ver       Time                     Author
//  0.10      2021/6/27 22:05:32      FruitVent
//  0.20	  2025年5月5日20:33:38		dlgcy
//
//  此代码版权归作者本人FruitVent所有
//  源代码使用协议遵循本仓库的开源协议及附加协议，若本仓库没有设置，则按MIT开源协议授权
//  CSDN博客：https://blog.csdn.net/weixin_39552347
//  源代码仓库：https://gitee.com/fruitvent
//  感谢您的下载和使用
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------

using System;
using WPFTemplateLib.Mvvm;

namespace WPFTemplateLib.Controls.FruitVentDesign.Models
{
	public class FilterItem : SimpleBindableBase
	{
		#region 成员、构造

		private FilterItem()
		{
			IsPassed = DefaultIsPassed;
		}

		public FilterItem(object value, string displayText = "") : this()
		{
			Value = value;

			if(!string.IsNullOrWhiteSpace(displayText))
			{
				DisplayText = displayText;
			}
			else
			{
				DisplayText = value.ToString();
			}
		}

		#endregion

		public bool IsSelected { get; set; }

		public string DisplayText { get; set; }

		public object Value { get; set; }

		/// <summary>
		/// 是否通过的判断方法
		/// </summary>
		public Func<object, object, bool> IsPassed { get; set; }

		/// <summary>
		/// 默认的是否通过判断方法
		/// </summary>
		private bool DefaultIsPassed(object value, object actualValue)
		{
			return value.Equals(actualValue);
		}
	}
}
